// 给定一个非空字符串 s，最多删除一个字符。判断是否能成为回文字符串。

// 示例 1:
// 输入: "aba"
// 输出: True

// 示例 2:
// 输入: "abca"
// 输出: True
// 解释: 你可以删除c字符。

// 注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。

//双指针：如果两个指针的值相等的话，则同时 ++ --
//		如果不相等，则判断剩下的是否是回文

var validPalindrome = function(s) {
    if(typeof s === "undefined" || s === null || s === ""){
		return true;
	}
	if(s.length === 3){
		if(s[0] !== s[2]){
			return false;
		}
	}
	///双指针
	let low = 0, high = s.length - 1;
	while(low < high) {
		let l = s[low], h = s[high];
		if (l === h) {
			low++;
			high--;
		} else {
			return equal(s, low + 1, high) || equal(s, low, high - 1);
		}
	}
	return true;
};
var equal = function(s, i, j) {
	// let subs = s.substring(i, j + 1);
	// let temp = subs.split("").reverse().join("");
	// return subs === temp;
	/////下面这个比上面es6的方法要快
	while (i < j) {
        if (s[i++] != s[j--]) {
            return false;
        }
    }
    return true;
}
//"ebcbbececabbacecbbcbe"
// beeee
// abc

console.log(validPalindrome("abc"));